package cn.iocoder.yudao.module.api.brokerage.user.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 推广用户 VO
 */
@Data
public class BrokerageUserVO {

    @Schema(description = "类型：0-普通用户、1-会员、2-招商人员、3-商家")
    private Integer type;

    @Schema(description = "推广人员用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "4587")
    @NotNull(message = "推广人员用户编号不能为空")
    private Long userId;

    @Schema(description = "上级推广人员用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "4587")
    @NotNull(message = "上级推广人员用户编号不能为空")
    private Long fatherUserId;

    @Schema(description = "上上级推广人员用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "4587")
    @NotNull(message = "上上级推广人员用户编号不能为空")
    private Long grandpaUserId;

    @Schema(description = "邀请人数")
    private Integer inviteCount;

    @Schema(description = "累计业绩金额，单位为分")
    private Integer achievementPrice;

    @Schema(description = "累计分佣金额，单位为分")
    private Integer bonusMoney;

    @Schema(description = "累计贡献值")
    private Integer bonusGrowth;

    @Schema(description = "等级权重")
    private Integer levelWeight;

    @Schema(description = "开关")
    private Boolean enabled;

    @Schema(description = "创建时间")
    private LocalDateTime createTime;

}
